Modern personal computers are supplied with an operating system having a “shell.” The shell is software that enables a user to interact with the operating system. It can be a part of the operating system software or separate therefrom. The shell normally facilitates this interaction using a graphical user interface, which is commonly implemented using a desktop metaphor within a windowing environment that may include visual or audio interface feedback in the form of animations, sound or music clips, and other constructs.
As with the top of an actual desk, the desktop of the graphical user interface normally has an underlying background, or wallpaper, on which appear various desktop objects. Using a pointing device, such as a mouse, a user can select a desktop object shown on the computer monitor to direct the operating system to perform a desired task.
The windowing environment displays one or more delineated areas on the computer monitor each known as a window. A window is normally under the control of an application or the operating system. The standard window contains certain graphical elements that contribute to its appearance, such as borders and controls. A control generally enables a user to input data to, or obtain information from, the operating system or the control's parent window, which is usually associated with an application. Controls include graphically represented, push buttons, check boxes, text input boxes, list boxes, scroll bars, toolbars and similar constructs.
The operating system itself may present the user with certain controls and other graphical user interface elements such as icons and cursors. For example, the graphical user interface may provide a task bar containing a start button and a system tray that enable the launch of desired applications. Audio clips and animations are also commonly implemented user interface elements. Each element has desired default attributes.
As graphical user interfaces became widely adopted, users sought more control over the appearance and other attributes of the desktop. Software manufacturers responded with software designed to enable desktop customization. The MICROSOFT WINDOWS 95 PLUS PACK product introduced the concept of a “theme” for the MICROSOFT WINDOWS operating system products from the Microsoft Corporation of Redmond, Wash. In this context, a “theme” is a group of icons, sounds, cursors, wallpaper, screen savers, fonts, screen colors and changes to other system metrics, customized to reflect a given subject. For example, the WINDOWS 95 PLUS PACK includes a Leonardo daVinci theme to create a desktop appearance evocative of daVinci's work. The PLUS PACK enables the operating system to read a theme file containing data, such as the file names for the resources comprising the theme, and to display the theme by loading these resources.
Theming was an important advance that quickly gained popularity among users. The theme itself is created by a theme author, who typically uses graphics and/or sound editing software to design source data for the selected theme, and is intended to replace the system default attributes of one or more user interface elements. The complexity of the authoring process and the skills required make theme creation beyond the capabilities of many users. The common user is otherwise restricted to changing a limited number of aspects of the desktop, such as the color and/or width of a window border or the font size and typeface used. Apart from such color, font and limited metrics adjustment, the theme does not fundamentally change the manner in which user interface elements are rendered.
The subsequent development of “visual style” technology extended theming capabilities, allowing significant modification of the visual appearance of windows and controls. MICROSOFT WINDOWS XP operating system product incorporates the visual style technology, and developers are able to create “theme aware” applications employing controls and window areas whose appearance automatically reflect the visual style in effect. This advance was particularly useful because it enables personal computer operating systems to alter the appearance of graphical user interface elements without requiring the development of unique rendering logic for each new visual style, either in the operating system itself or in software applications hosted by it. The visual style technology is well-suited to user interface designs using visually rich source images, such as hand-rendered raster and vector images, which can impart an attractive tactile, three-dimensional or even photo-realistic quality.
The increased flexibility and improved appearance of user interface elements tend to make theme authoring more complex. An average visual style can contain hundreds of source images, along with a number of properties, or attributes associated with each themed user interface element describing how to render the element. Creating, duplicating and hand modifying potentially hundreds of source images and assigning and editing attributes for each to produce a single, consistent visual style variation can take a team of experienced graphic designers weeks or months. Moreover, users increasingly demand flexibility in the appearance of a desktop and the associated windowing environment. Even after a theme author has completed the authoring process, the number of potential permutations on the theme that a user might wish to implement is so high as to prohibit the creation and storage of each possible variation. Furthermore, the act of adding variation via the theme authoring process to a thoroughly tested visual style risks destabilizing the operating system or software applications. For example, a key property value may be unintentionally omitted or assigned an inconsistent value. In summary, both theme authors and users, are largely unable to dynamically and easily modify the appearance of user interface elements defined by a visual style because of the complexities of a complete visual style definition.